package public

import "gorm.io/gorm"

type Nacos struct {
	Host        string `mapstructure:"host" json:"host"`
	Port        int64  `mapstructure:"port" json:"port"`
	NameSpaceId string `mapstructure:"namespaceid" json:"nameSpaceId"`
	DataId      string `mapstructure:"dataid" json:"dataId"`
	Group       string `mapstructure:"group" json:"group"`
}

type Mysql struct {
	Host     string `mapstructure:"host" json:"host"`
	Port     int64  `mapstructure:"port" json:"port"`
	UserName string `mapstructure:"userName" json:"user_name"`
	Password string `mapstructure:"password" json:"password"`
	Database string `mapstructure:"database" json:"database"`
}

type Redis struct {
	Host string `mapstructure:"host" json:"host"`
	Port int64  `mapstructure:"port" json:"port"`
}

type Consul struct {
	Host string `mapstructure:"host" json:"host"`
	Port int64  `mapstructure:"port" json:"port"`
}
type NacosCfg struct {
	Host        string `mapstructure:"host" json:"host"`
	Port        int    `mapstructure:"port" json:"port"`
	NameSpaceId string `mapstructure:"namespaceid" json:"namespaceid"`
	DataId      string `mapstructure:"dataid" json:"dataid"`
	Group       string `mapstructure:"group" json:"group"`
}

type Server struct {
	Host string `mapstructure:"host" json:"host"`
	Port int64  `mapstructure:"port" json:"port"`
}

type UserCfg struct {
	Name   string `mapstructure:"name" json:"name"`
	Nacos  Nacos  `mapstructure:"Nacos" json:"nacos"`
	Mysql  Mysql  `mapstructure:"mysql" json:"mysql"`
	Redis  Redis  `mapstructure:"redis" json:"redis"`
	Consul Consul `mapstructure:"consul" json:"consul"`
	Server Server `mapstructure:"server" json:"server"`
}

var (
	DB         *gorm.DB
	UserConfig *UserCfg = &UserCfg{}
)
